/*
 * @Author: 13177709051 3506463075@qq.com
 * @Date: 2024-10-20 16:29:45
 * @LastEditors: 13177709051 3506463075@qq.com
 * @LastEditTime: 2024-10-20 17:15:50
 * @FilePath: /linux15/text.c
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
// #include <stdio.h>
// #include <sys/types.h>
// #include <sys/stat.h>
// #include <fcntl.h>
// #include <string.h>
// #include <unistd.h>

// int main()
// {
//     char buf[1024];
//     size_t s = read(0, buf, sizeof(buf));
//     if(s > 0)
//     {
//         buf[s] = 0;
//         write(1, buf, strlen(buf));
//         write(2, buf, strlen(buf));
//     }
//     return 0;
// }

// read(0, buf, sizeof(buf));：使用 read 函数从标准输入（文件描述符 0）读取数据。

// 第一个参数 0 表示从标准输入读取。
// 第二个参数 buf 是用于存储读取数据的缓冲区。
// 第三个参数 sizeof(buf) 表示读取的最大字节数（即 1024 字节）。

// write(1, buf, strlen(buf));：

// 使用 write 函数将 buf 中的数据写入标准输出（文件描述符 1）。
// strlen(buf) 计算 buf 中的字符串长度，以确保写入的字节数正确。
// write(2, buf, strlen(buf));：

// 同样使用 write 函数将 buf 中的数据写入标准错误（文件描述符 2）。

// #include <stdio.h>
// #include <sys/types.h>
// #include <sys/stat.h>
// #include <fcntl.h>
// #include <unistd.h>

// int main()
// {
//     int fd = open("myfile", O_RDONLY);
//     if(fd < 0)
//     {
//         perror("open");
//         return 1;
//     }
//     printf("fd: %d\n", fd);
//     close(fd);
//     return 0;
// }

// #include <stdio.h>
// #include <sys/types.h>
// #include <sys/stat.h>
// #include <fcntl.h>
// #include <unistd.h>

// int main()
// {
//     close(2);
//     int fd = open("myfile", O_RDONLY);
//     if(fd < 0)
//     {
//         perror("open");
//         return 1;
//     }
//     printf("fd: %d\n", fd);
//     close(fd);
//     return 0;
// }

// #include <stdio.h>
// #include <sys/types.h>
// #include <sys/stat.h>
// #include <fcntl.h>
// #include <stdlib.h>
// #include <unistd.h>

// int main()
// {
//     close(1);
//     int fd = open("myfile", O_WRONLY | O_CREAT, 00644);
//     if (fd < 0)
//     {
//         perror("open");
//         return 1;
//     }
//     printf("fd: %d\n", fd);
//     fflush(stdout);

//     close(fd);
//     exit(0);
// }



#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
 #include <string.h>


int main()
{
    const char* msg0 = "hello printf\n";
    const char* msg1 = "hello fwrite\n";
    const char* msg2 = "hello write\n";

    printf("%s", msg0);
    fwrite(msg1, strlen(msg1), 1, stdout);
    write(1, msg2, strlen(msg2));

    fork();

    return 0;
}
